/*
 * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package com.amazonaws.services.simpleemail.model.transform;

import com.amazonaws.Request;
import com.amazonaws.services.simpleemail.model.*;
import com.amazonaws.util.StringUtils;

/**
 * StAX marshaller for POJO IdentityMailFromDomainAttributes
 */
class IdentityMailFromDomainAttributesStaxMarshaller {

    public void marshall(IdentityMailFromDomainAttributes _identityMailFromDomainAttributes,
            Request<?> request, String _prefix) {
        String prefix;
        if (_identityMailFromDomainAttributes.getMailFromDomain() != null) {
            prefix = _prefix + "MailFromDomain";
            String mailFromDomain = _identityMailFromDomainAttributes.getMailFromDomain();
            request.addParameter(prefix, StringUtils.fromString(mailFromDomain));
        }
        if (_identityMailFromDomainAttributes.getMailFromDomainStatus() != null) {
            prefix = _prefix + "MailFromDomainStatus";
            String mailFromDomainStatus = _identityMailFromDomainAttributes
                    .getMailFromDomainStatus();
            request.addParameter(prefix, StringUtils.fromString(mailFromDomainStatus));
        }
        if (_identityMailFromDomainAttributes.getBehaviorOnMXFailure() != null) {
            prefix = _prefix + "BehaviorOnMXFailure";
            String behaviorOnMXFailure = _identityMailFromDomainAttributes.getBehaviorOnMXFailure();
            request.addParameter(prefix, StringUtils.fromString(behaviorOnMXFailure));
        }
    }

    private static IdentityMailFromDomainAttributesStaxMarshaller instance;

    public static IdentityMailFromDomainAttributesStaxMarshaller getInstance() {
        if (instance == null)
            instance = new IdentityMailFromDomainAttributesStaxMarshaller();
        return instance;
    }
}
